iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

前言


大家好
這次的主題是用Compose Multiplatform 實戰:用Kotlin從零開始開發跨平台App
這次我會聚焦在 開發 跨平台AndroidIOS 的App上
在最後幾天也會談談目前研究下來的概況以及心得

簡介Compose Multiplatform


我們先簡單了解一下 Compose MultiplatformKotlin Multiplatform

Multiplatform這個字本身就是 Multi + platform
從字面上的意思就是多平台的意思

Compose Multiplatform
目前根據JetBrain的官網的介紹
支援開發者用Kotlin 中的Compose聲明式UI
來開發Application
目前支援的平台有iOSAndroidDesktopWeb四大項

另外,有些人也會稱作KMM (Kotlin mobile multiplatform)
或是CMP (Compose Multiplatform)KMP (Kotlin Multiplatform)
下面我將會用CMP來表示Compose Multiplatform
以便減少版面的重複性
還望大家習慣一下!

CMPKMP的區別是什麼?


其實兩者都旨在簡化跨平台專案的開發
減少為不同平台編寫和維護相同程式碼的時間

可以透過Gradle的配置
搭配共用Source Code的開發來減少開發時程
像是透過commonMain來開發跨平台的程式碼
如Compose UI就是在這一層內開發

那其中的差別如下

KMP是必需用原生平台的Code去刻畫目標App的UI layout
像是Android 使用Xml來實作layout
( or Compose實作layout 不過在KMP的時候只能用在Android下 不能用在common的邏輯)
IOS使用Obj-C來實作UI

CMP則 延伸KMP的概念
同樣可以 撰寫 共用程式碼
並且開始支援Compose來一次完成多平台的畫面

預覽


像是下圖是我用純Compose就能一次刻畫多平台的畫面
當然這是用Material Design 3 刻出來的畫面
有可能會有人在意跟IOS的規範不一樣
但我實際發現過去在做專案時
大部分的UI Designs都會要求以IOS的畫面為主

除了一些各自平台的元件除外
仔細刻還是可以刻到跟IOS極度相似的畫面
所以這部分就看每個人的Use case
去決定會不會在意了XD

Image

目標


最後
在這三十天內,我會先以下面的為主題來做分享

  • 掌握CMP的基礎使用方法與基本配置
  • Compose的來寫layout基本方法
  • 了解如何在CMP中使用Koin 進行DI注入
  • 學習用CMP開發但Android平台需要context時怎麼辦?
  • CMP開發本地持久化儲存DataStore實作
  • CMP開發本地資料庫使用SqlDelight實作
  • CMP開發本地資料庫使用Room實作
    且遇到 [KSP2] Annotation value is missing in nested annotations的解決方法
  • CMP專案中導入CocoaPods並使用IOS的framework
  • CMP專案中使用cinterop並使用IOS的framework
  • ...等等

結語


明天開始
會開始寫筆記讓大家更了解Compose Multiplatform

另外CMP也在不斷更新
像是從Google發佈的文章看來

是有可能會在CMP中
陸續增加更多的支援
是滿令人期待的
images
(圖片來源:Google Blog)

因為CMP這個東西比較新
有可能會遇到各式各樣的情況
網路上資料也沒那麼充足
所以大家有遇到問題也能討論、互相學習成長

附錄


同時我也整理了相關內容在我的部落格
想要看看的可以點擊連結查看


系列文
Compose Multiplatform 實戰:用Kotlin從零開始開發跨平台App1
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言